from django.template import loader, Context
from django.http import HttpResponse
from dziennikocen.dziennik.models import *

def klasy(request):
  menu = Klasa.objects.all()

  klasy = {}
  for k in Klasa.objects.all():
    klasy[k.id] = {}
    klasy[k.id]['klasa'] = k.nazwa
    klasy[k.id]['wychowawca'] = k.wychowawca
    klasy[k.id]['uczniowie'] = []
    for x in k.uczen_set.all():
      klasy[k.id]['uczniowie'].append(x.nazwisko + " " + x.imie)

  t = loader.get_template("klasy.html")
  c = Context({'klasy':klasy, 'menu':menu})
  return HttpResponse(t.render(c))

def uczniowie(request, nazwa):
  menu = Klasa.objects.all()

  uczniowie = {}
  k = Klasa.objects.get(nazwa=nazwa)
  uczniowie[k.id] = {}
  for u in Uczen.objects.all():
    if u.klasa_id == k.id:
      uczniowie[k.id][u.id] = {}
      uczniowie[k.id][u.id]['uczen'] = u.nazwisko + " " + u.imie
      uczniowie[k.id]['klasa'] = k.nazwa
      uczniowie[k.id]['wychowawca'] = k.wychowawca
      for ua in u.aktywnosc_set.all():
        if not uczniowie[k.id][u.id].has_key(ua.przedmiot.nazwa):
          uczniowie[k.id][u.id][ua.przedmiot.nazwa] = []
        for uao in ua.ocena_set.all():
          uczniowie[k.id][u.id][ua.przedmiot.nazwa].append(uao.wysokosc)
        suma = 0.0
        liczba_ocen = 0.0
        for ocena_avg in uczniowie[k.id][u.id][ua.przedmiot.nazwa]:
          suma += ocena_avg
          liczba_ocen += 1.0
        if liczba_ocen>0:
          uczniowie[k.id][u.id][ua.przedmiot.nazwa+"_avg"] = suma / liczba_ocen

  t = loader.get_template("uczniowie.html")
  c = Context({'uczniowie':uczniowie, 'menu':menu})
  return HttpResponse(t.render(c))
